<?php
namespace app\portal\controller;
use cmf\controller\HomeBaseController;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/10/30
 * Time: 15:23
 */

class PhonecodeController extends HomeBaseController{
    public function test(){
        $session=session('16606332135');
        dump($session);
    }
//    public function send(){
//
//        $mobile=input('get.mobile/s','');
//        $target = "http://106.ihuyi.com/webservice/sms.php?method=Submit";
//        $mobile_code = $this->random(4,1);
//        $result=[];
//        $apiid='C72718724';
//        $password="dae817cf0f0217880a70a117d8c580e4";
//        $post_data = "account=".$apiid."&password=".$password."&mobile=".$mobile."&content=".rawurlencode("您的验证码是：".$mobile_code."。请不要把验证码泄露给其他人。");
//        $msg = "您的验证码是：".$mobile_code."。请不要把验证码泄露给其他人。";
//
//        try{
//            if(!$mobile){
//               throw new \Exception('手机号码不可为空');
//            }
//            $gets =  $this->xml_to_array($this->Post($post_data, $target));
//            send_sms_mas($mobile,$msg);
//            if($gets['SubmitResult']['code']!=2){
//                throw new \Exception('验证码发送失败');
//            }
//            session($mobile,$mobile_code);
//            $result['error']=false;
//            $result['errmsg']='验证码发送成功';
//        }catch(\Exception $e){
//            $result['error']=true;
//            $result['errmsg']=$e->getMessage();
//        }
//        return json($result);
//    }
    public function send(){

        $mobile=input('get.mobile/s','');
        $mobile_code = $this->random(4,1);
        $result=[];
        $msg = "您的验证码是：".$mobile_code."。请不要把验证码泄露给其他人。";

        try{
            if(!$mobile){
                throw new \Exception('手机号码不可为空');
            }
            send_sms_mas($mobile,$msg);
//            if($gets['SubmitResult']['code']!=2){
//                throw new \Exception('验证码发送失败');
//            }
            session($mobile,$mobile_code);
            $result['error']=false;
            $result['errmsg']='验证码发送成功';
        }catch(\Exception $e){
            $result['error']=true;
            $result['errmsg']=$e->getMessage();
        }
        return json($result);
    }


    //请求数据到短信接口，检查环境是否 开启 curl init。
    function Post($curlPost,$url){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
        $return_str = curl_exec($curl);
        curl_close($curl);
        return $return_str;
    }

//将 xml数据转换为数组格式。
    function xml_to_array($xml){
        $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";
        if(preg_match_all($reg, $xml, $matches)){
            $count = count($matches[0]);
            for($i = 0; $i < $count; $i++){
                $subxml= $matches[2][$i];
                $key = $matches[1][$i];
                if(preg_match( $reg, $subxml )){
                    $arr[$key] = $this->xml_to_array( $subxml );
                }else{
                    $arr[$key] = $subxml;
                }
            }
        }
        return $arr;
    }

//random() 函数返回随机整数。
    function random($length = 6 , $numeric = 0) {
        PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
        if($numeric) {
            $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
        } else {
            $hash = '';
            $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
            $max = strlen($chars) - 1;
            for($i = 0; $i < $length; $i++) {
                $hash .= $chars[mt_rand(0, $max)];
            }
        }
        return $hash;
    }

}